CFLAGS = -Wall -g  -I. -I../lx -Wstrict-prototypes -Wmissing-prototypes
compiler = gcc
ar = ar cru

common_object += lx.o
common_object += lx_tokens.o
common_object += lx_map_file.o
common_object += lx_route_file.o
common_object += lx_routing.o
common_object += lx_xbar_file.o
common_object += lx_rand.o
common_object += common.o

wiring_object += wiring.o
count_object += count.o
careful_routes_object += careful_routes.o
absolute_object += absolute.o
backwards_object += backwards.o
split_object += split.o
d2e_object += d2e.o
missing_object += missing.o
compare_object += compare.o
unique_routes_object += unique_routes.o
deadlock_object += deadlock.o

all: deadlock compare unique_routes count split wiring missing careful_routes absolute backwards libmappertools.a

libmappertools.a : $(common_object)
	$(ar) $@ $^

careful_routes : careful_routes.o libmappertools.a
	$(compiler) $^ -o $@

deadlock : deadlock.o libmappertools.a
	$(compiler) $^ -o $@

absolute : absolute.o libmappertools.a
	$(compiler) $^ -o $@

count : count.o libmappertools.a
	$(compiler) $^ -o $@

wiring : wiring.o libmappertools.a
	$(compiler) $^ -o $@

split : split.o libmappertools.a
	$(compiler) $^ -o $@

backwards : backwards.o libmappertools.a
	$(compiler) $^ -o $@


d2e : d2e.o libmappertools.a
	$(compiler) $^ -o $@

missing : missing.o libmappertools.a
	$(compiler) $^ -o $@

unique_routes : unique_routes.o libmappertools.a
	$(compiler) $^ -o $@

compare : compare.o libmappertools.a
	$(compiler) $^ -o $@

%.o : %.c  lx.h mi.h
	$(compiler) $(CFLAGS) -c $< -o $@

%.o : %.c ../lx/lx.h mi.h
	$(compiler) $(CFLAGS) -c $< -o $@

%.o : ../lx/%.c ../lx/lx.h mi.h
	$(compiler) $(CFLAGS) -c $< -o $@

clean :
	rm -f *.o
